//!
//! Copyright (c) 2024-2999 北京心月狐科技有限公司 All rights reserved.
//!
//! https://www.mxxshop.com
//!
//! Licensed 并不是自由软件，未经许可不能去掉 MxxShop 相关版权
//!
//! 版权所有，侵权必究！
//!

use rbatis::rbdc::DateTime;
use serde::{Deserialize, Serialize};

/// 商品规格基础
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SpecBase {
    /// 自增id
    pub id: Option<u32>,
    /// 商品id
    pub product_id: Option<u32>,
    /// 销售价
    pub price: Option<f64>,
    /// 原价
    pub original_price: Option<f64>,
    /// 库存
    pub inventory: Option<u32>,
    /// 起购数
    pub buy_min_number: Option<u32>,
    /// 限购数
    pub buy_max_number: Option<u32>,
    /// 重量（kg）
    pub weight: Option<f64>,
    /// 体积（m³）
    pub volume: Option<f64>,
    /// 编码
    pub coding: Option<String>,
    /// 条形码
    pub barcode: Option<String>,
    /// 扩展数据(json格式存储)
    pub extends: Option<String>,
    /// 添加时间
    pub create_time: Option<u32>,
}


/// 商品规格模板
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SpecTemplate {
    pub id: Option<u64>, // 自增id
    pub category_id: Option<u64>, // 商品分类id（含子级）
    pub template_name: Option<String>, // 名称
    pub content: Option<String>, // 内容
    pub is_enable: Option<u8>, // 是否启用（0否，1是）
    pub create_time: Option<DateTime>, // 添加时间
    pub update_time: Option<DateTime>, // 更新时间
}

/// 商品规格类型
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SpecType {
    /// 自增id
    pub id: Option<u32>,
    /// 商品id
    pub product_id: Option<u32>,
    /// 类型值（json字符串存储）
    pub value: Option<String>,
    /// 类型名称
    pub name: Option<String>,
    /// 添加时间
    pub create_time: Option<u32>,
}

/// 商品规格值
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SpecValue {
    /// 自增id
    pub id: Option<u32>,
    /// 商品id
    pub product_id: Option<u32>,
    /// 商品规格基础id
    pub product_spec_base_id: Option<u32>,
    /// 规格值
    pub value: Option<String>,
    /// 添加时间
    pub create_time: Option<u32>,
}